1. Field of the Invention
The system and method of the present invention relates to the computation of positions and timing using positioning data received from a global positioning system (GPS).
2. Art Background
The global positioning system has become increasingly popular as a position determination or time determination mechanism for a variety of applications. Using data received from GPS satellites, a receiving device can compute the position of the receiver and the current time. In early systems, a GPS receiver included a processor executing specially coded software to perform the measurements and compute navigation solutions (e.g., receiver position and time). The navigation solutions would then be transmitted to a user""s processing system which would then generate application solutions, e.g., determining distance moved since last measurement. Alternately, the GPS receiver manufacturers would customize receivers to perform processes to generate navigation solutions as well as the user application solutions.
With the ever-increasing processing power of microprocessors and the desire to reduce cost and overall power consumption, there has been a move to eliminate the processor in the receiver and have the user""s processor perform the navigation solution processing and the user application solution processing. Although a single microprocessor is capable of providing sufficient processing power and one processor consumes less power than two processors, integrating such functionality is not a simple task. First, processes performed to track satellites and processes performed to search for and acquire preliminary measurements are time critical; that is, as the positioning data is received from the satellites, the tracking calculations must be performed in order to maintain a closed tracking loop. Furthermore, certain preliminary measurement solutions must be performed within a certain window in order to timely process current data.
In order to manage the time critical nature of the processes, the processor that performs the tracking and measurement solutions calculations must manage a continuous stream of interrupts, i.e., the processor is interrupt driven. For example, interrupts are generated when the data is available in the correlators of the receiver, typically every millisecond for each GPS channel. Other processing, including the user application solution processing, may therefore be delayed significantly as the high priority interrupts take precedent. Furthermore, the situation can be particularly problematic if the application solution processing requires uninterrupted periods of time. In such a situation, the time critical interrupts may not be serviced in a timely manner resulting in failure to track satellites or in unreliable data being generated.
Furthermore, due to the above constraints, the end user is typically incapable of programming the end user application without corrupting the basic GPS algorithms or data generated therefrom. Thus, the GPS manufacturer""s specially trained programmers typically have to program the end user application.
The system and method of the present invention provides a cost effective and efficient technique for performing time critical tracking and measurement calculations for processing Global Positioning System (GPS) signals without conflicting with other time critical tasks in the user""s application. Furthermore, the system takes advantage of the processing power of the user system for executing non-time-critical GPS processing in the user""s system. In addition, low power operation is achieved using a dual component system. Finally, the dual component system enables the end user to program custom applications incorporating Global Positioning System (GPS) technology.
In one embodiment the receiver is coupled to a channel unit which receives correlation energy data for each channel output from the correlators. The output from the correlators requires time critical processing to control the tracking loops for each of the channels in order to maximize the correlation energy and to generate intermediate measurement data. In one embodiment, the intermediate measurement data includes the carrier phase, code phase and Doppler data.
The system localizes processing which is common to many GPS solutions and partitions between tracking and position/velocity/time (PVT) data not only to separate the time critical processing portion but also to generate a low power component that is capable of being used for many different types of GPS solutions and applications.
The intermediate measurement data is transmitted to a processor, such as a user""s general purpose processor, that computes non-time-critical processes of the navigation solution, for example, receiver position, velocity and time. The user processor therefore is easily configurable to compute user application solutions. As the navigation solution processes are non-time critical, processing conflicts with the user application are minimal. In addition, the processing power of the user""s processor is taken advantage of, thereby minimizing costs, while providing a workable system that lends itself easily to user customization.
In one embodiment, the channel unit is configured with on-chip memory. The memory contains the code needed to operate the channel unit and also functions as an intermediate storage area. Any address lines between the channel unit and processor are eliminated; furthermore, the number of data lines are reduced. In one embodiment, the number of data lines are reduced to support a standard serial or parallel link. As the number of lines are reduced significantly, so are the number of drivers and the power needed to operate the drivers. Therefore significant power savings are achieved at the channel unit.